// Don't edit this file !!!!!!!
// This is auto make.

using System;
using System.Text;
using System.Runtime.InteropServices;
using PlateDSP;

namespace PlateDSP
{
	public class CAPI4PlateDSPBase : PlateDSPapi
	{
		private IntPtr m_hdsp = IntPtr.Zero;
		private PLATEDSP_SYNC_EVET m_pCallBack;
		private GCHandle m_KeepCallBackAlive;

		public CAPI4PlateDSPBase()
		{
			m_pCallBack = new PLATEDSP_SYNC_EVET(dspCallBack);
			m_KeepCallBackAlive = GCHandle.Alloc(m_pCallBack);
		}
		~CAPI4PlateDSPBase()
		{
			CloseBase();
			m_KeepCallBackAlive.Free();
		}
		public int GetVersion(int Type,[MarshalAs(UnmanagedType.LPStr)]StringBuilder pBuf,int BufSize)
		{
			return dspGetVersion(Type,pBuf,BufSize);
		}
		public bool IsOpened()
		{
			return (m_hdsp != IntPtr.Zero);
		}
		public virtual void Callback(PLATEDSP_MSG Msg)
		{
		}
		private Int32 dspCallBack(IntPtr pObj, IntPtr pMsg)
		{
			PLATEDSP_MSG Msg = (PLATEDSP_MSG) Marshal.PtrToStructure(pMsg, typeof(PLATEDSP_MSG));
			Callback( Msg );
			return 0;
		}
		public bool OpenBase(String pGuiName)
		{
			m_hdsp = dspCreate(pGuiName);
			if( IsOpened() )
			{
				SetSyncEventCallback(IntPtr.Zero, Marshal.GetFunctionPointerForDelegate(m_pCallBack));
				return true;
			}
			return false;
		}
		public bool OpenBaseEx(String pGuiName,IntPtr pObject)
		{
			m_hdsp = dspCreateEx(pGuiName,pObject);
			if( IsOpened() )
			{
				SetSyncEventCallback(IntPtr.Zero, Marshal.GetFunctionPointerForDelegate(m_pCallBack));
				return true;
			}
			return false;
		}
		public void CloseBase()
		{
			if( IsOpened() )
			{
				dspDestroy(m_hdsp);
				m_hdsp = IntPtr.Zero;
			}
		}
		private IntPtr Create(String pGuiName)
		{
			return dspCreate(pGuiName);
		}
		private IntPtr CreateEx(String pGuiName,IntPtr pObject)
		{
			return dspCreateEx(pGuiName,pObject);
		}
		private Int32 Destroy()
		{
			return dspDestroy(m_hdsp);
		}
		private Int32 SetSyncEventCallback(IntPtr pObj,IntPtr Proc)
		{
			return dspSetSyncEventCallback(m_hdsp,pObj,Proc);
		}
		public Int32 ResetImageDisplayWindow(IntPtr hwnd)
		{
			return dspResetImageDisplayWindow(m_hdsp,hwnd);
		}
		public Int32 DoEvent()
		{
			return dspDoEvent(m_hdsp);
		}
		public Int32 ImageGetIdentity()
		{
			return dspImageGetIdentity(m_hdsp);
		}
		public Int32 ImageGetByField()
		{
			return dspImageGetByField(m_hdsp);
		}
		public Int32 ImageSetByField(Int32 Params)
		{
			return dspImageSetByField(m_hdsp,Params);
		}
		public Int32 ImageGetDisplayEnabled()
		{
			return dspImageGetDisplayEnabled(m_hdsp);
		}
		public Int32 ImageSetDisplayEnabled(Int32 Params)
		{
			return dspImageSetDisplayEnabled(m_hdsp,Params);
		}
		public Int32 ImageStreamCopy(IntPtr pBuf,Int32 BufSize,Int32 Params)
		{
			return dspImageStreamCopy(m_hdsp,pBuf,BufSize,Params);
		}
		public Int32 ImageIsBest()
		{
			return dspImageIsBest(m_hdsp);
		}
		public Int32 ImagePlateIsBest()
		{
			return dspImagePlateIsBest(m_hdsp);
		}
		public Int32 ImageSetCompressQuality(Int32 Quality)
		{
			return dspImageSetCompressQuality(m_hdsp,Quality);
		}
		public Int32 ImageStreamSave([MarshalAs(UnmanagedType.LPWStr)]String FileName,Int32 Params)
		{
			return dspImageStreamSave(m_hdsp,FileName,Params);
		}
		public Int32 ImageStreamSaveEx([MarshalAs(UnmanagedType.LPWStr)]String FileName,ref Int32 pStream,Int32 Params)
		{
			return dspImageStreamSaveEx(m_hdsp,FileName,ref pStream,Params);
		}
		public Int32 BufferImageStream(UInt32 Id)
		{
			return dspBufferImageStream(m_hdsp,Id);
		}
		public Int32 BufferCopy(IntPtr pDesBuf,Int32 BufSize,UInt32 Id,Int32 Params)
		{
			return dspBufferCopy(m_hdsp,pDesBuf,BufSize,Id,Params);
		}
		public Int32 BufferSave(UInt32 Id,Int32 Params,[MarshalAs(UnmanagedType.LPWStr)]String FileName,Int32 bWaitFinished)
		{
			return dspBufferSave(m_hdsp,Id,Params,FileName,bWaitFinished);
		}
		public Int32 ImageStreamPlateCopy(IntPtr pBuf,Int32 BufSize,Int32 Params)
		{
			return dspImageStreamPlateCopy(m_hdsp,pBuf,BufSize,Params);
		}
		public Int32 ImageStreamPlateSave([MarshalAs(UnmanagedType.LPWStr)]String FileName,Int32 Params)
		{
			return dspImageStreamPlateSave(m_hdsp,FileName,Params);
		}
		public Int32 ImageStreamSetTitle(Int32 x,Int32 y,[MarshalAs(UnmanagedType.LPWStr)]String Msg)
		{
			return dspImageStreamSetTitle(m_hdsp,x,y,Msg);
		}
		public Int32 SetRedBoxDisplayEnabled(Int32 Params)
		{
			return dspSetRedBoxDisplayEnabled(m_hdsp,Params);
		}
		public Int32 SetRecogRangeBoxDisplayEnabled(Int32 Params)
		{
			return dspSetRecogRangeBoxDisplayEnabled(m_hdsp,Params);
		}
		public Int32 GetPlateBrightness()
		{
			return dspGetPlateBrightness(m_hdsp);
		}
		public Int32 GetPlateColor()
		{
			return dspGetPlateColor(m_hdsp);
		}
		public Int32 GetColorName(Int32 Color,[MarshalAs(UnmanagedType.LPWStr)]StringBuilder pBuff,Int32 BuffNum)
		{
			return dspGetColorName(m_hdsp,Color,pBuff,BuffNum);
		}
		public Int32 GetPlateCount()
		{
			return dspGetPlateCount(m_hdsp);
		}
		public Int32 GetPlateSpeed(ref Int32 px,ref Int32 py)
		{
			return dspGetPlateSpeed(m_hdsp,ref px,ref py);
		}
		public Int32 GetPlateLocatedRect(ref Int32 pLeft,ref Int32 pTop,ref Int32 pRight,ref Int32 pBottom)
		{
			return dspGetPlateLocatedRect(m_hdsp,ref pLeft,ref pTop,ref pRight,ref pBottom);
		}
		public Int32 GetPlateNumber([MarshalAs(UnmanagedType.LPWStr)]StringBuilder pBuff,Int32 BuffNum)
		{
			return dspGetPlateNumber(m_hdsp,pBuff,BuffNum);
		}
		public Int32 GetPlateReliability()
		{
			return dspGetPlateReliability(m_hdsp);
		}
		public Int32 GetPlateReliabilityByChar(ref byte pBuff,Int32 BuffNum)
		{
			return dspGetPlateReliabilityByChar(m_hdsp,ref pBuff,BuffNum);
		}
		public Int32 GetPlateTypeName([MarshalAs(UnmanagedType.LPWStr)]StringBuilder pBuff,Int32 BuffNum)
		{
			return dspGetPlateTypeName(m_hdsp,pBuff,BuffNum);
		}
		public Int32 GetTaxiTypeName([MarshalAs(UnmanagedType.LPWStr)]StringBuilder pBuff,Int32 BuffNum)
		{
			return dspGetTaxiTypeName(m_hdsp,pBuff,BuffNum);
		}
		public Int32 GetCarColor()
		{
			return dspGetCarColor(m_hdsp);
		}
		public Int32 GetRecogCarColorEnabled()
		{
			return dspGetRecogCarColorEnabled(m_hdsp);
		}
		public Int32 SetRecogCarColorEnabled(Int32 bEnabled)
		{
			return dspSetRecogCarColorEnabled(m_hdsp,bEnabled);
		}
		public Int32 RecogCfgGetMinReliability()
		{
			return dspRecogCfgGetMinReliability(m_hdsp);
		}
		public Int32 RecogCfgSetMinReliability(Int32 Params)
		{
			return dspRecogCfgSetMinReliability(m_hdsp,Params);
		}
		public Int32 RecogCfgGetProvince([MarshalAs(UnmanagedType.LPWStr)]StringBuilder pBuff,Int32 BuffNum)
		{
			return dspRecogCfgGetProvince(m_hdsp,pBuff,BuffNum);
		}
		public Int32 RecogCfgSetProvince([MarshalAs(UnmanagedType.LPWStr)]String Province)
		{
			return dspRecogCfgSetProvince(m_hdsp,Province);
		}
		public Int32 RecogCfgGetPlateRange(ref Int32 pMinWidth,ref Int32 pMinHeight,ref Int32 pMaxWidth,ref Int32 pMaxHeight)
		{
			return dspRecogCfgGetPlateRange(m_hdsp,ref pMinWidth,ref pMinHeight,ref pMaxWidth,ref pMaxHeight);
		}
		public Int32 RecogCfgSetPlateRange(Int32 MinWidth,Int32 MinHeight,Int32 MaxWidth,Int32 MaxHeight)
		{
			return dspRecogCfgSetPlateRange(m_hdsp,MinWidth,MinHeight,MaxWidth,MaxHeight);
		}
		public Int32 RecogCfgGetImageRange(ref Int32 pLeft,ref Int32 pTop,ref Int32 pRight,ref Int32 pBottom)
		{
			return dspRecogCfgGetImageRange(m_hdsp,ref pLeft,ref pTop,ref pRight,ref pBottom);
		}
		public Int32 RecogCfgSetImageRange(Int32 Left,Int32 Top,Int32 Right,Int32 Bottom)
		{
			return dspRecogCfgSetImageRange(m_hdsp,Left,Top,Right,Bottom);
		}
		public Int32 RecogCfgGetPlateContainerType()
		{
			return dspRecogCfgGetPlateContainerType(m_hdsp);
		}
		public Int32 RecogCfgSetPlateContainerType(Int32 Params)
		{
			return dspRecogCfgSetPlateContainerType(m_hdsp,Params);
		}
		public Int32 RecogCfgGetUseTemplate()
		{
			return dspRecogCfgGetUseTemplate(m_hdsp);
		}
		public Int32 RecogCfgSetUseTemplate(Int32 Params)
		{
			return dspRecogCfgSetUseTemplate(m_hdsp,Params);
		}
		public Int32 RecogCfgSave()
		{
			return dspRecogCfgSave(m_hdsp);
		}
		public Int32 RecogParamDlg()
		{
			return dspRecogParamDlg(m_hdsp);
		}
		public Int32 RecogTrainDlg()
		{
			return dspRecogTrainDlg(m_hdsp);
		}
		public Int32 RecogGetTick()
		{
			return dspRecogGetTick(m_hdsp);
		}
		public Int32 RecogGetEnableCount()
		{
			return dspRecogGetEnableCount(m_hdsp);
		}
		public Int32 RecogSetEnableCount(Int32 Count)
		{
			return dspRecogSetEnableCount(m_hdsp,Count);
		}
		public Int32 RecogSetMaxTimeCheckEnabled(Int32 Params)
		{
			return dspRecogSetMaxTimeCheckEnabled(m_hdsp,Params);
		}
		public Int32 RecogStartWithFile([MarshalAs(UnmanagedType.LPWStr)]String FileName,Int32 Params)
		{
			return dspRecogStartWithFile(m_hdsp,FileName,Params);
		}
		public Int32 RecogStartWithMem(IntPtr pData,UInt32 Size,Int32 Params)
		{
			return dspRecogStartWithMem(m_hdsp,pData,Size,Params);
		}
		public Int32 SetRecogImageFormat4Mem(UInt32 Format,UInt32 Width,Int32 Height,Int32 Params)
		{
			return dspSetRecogImageFormat4Mem(m_hdsp,Format,Width,Height,Params);
		}
		public Int32 SetRecogBitmapInfo4Mem(UInt32 BitCount,UInt32 Compression,UInt32 Width,Int32 Height,Int32 Params)
		{
			return dspSetRecogBitmapInfo4Mem(m_hdsp,BitCount,Compression,Width,Height,Params);
		}
		public Int32 WaitRecogFinished(UInt32 Tick)
		{
			return dspWaitRecogFinished(m_hdsp,Tick);
		}
		public Int32 WaitFileSaved(UInt32 Tick)
		{
			return dspWaitFileSaved(m_hdsp,Tick);
		}
		public Int32 AviGetCurrentPosition()
		{
			return dspAviGetCurrentPosition(m_hdsp);
		}
		public Int32 AviSetCurrentPosition(Int32 Pos)
		{
			return dspAviSetCurrentPosition(m_hdsp,Pos);
		}
		public Int32 AviGetDuration()
		{
			return dspAviGetDuration(m_hdsp);
		}
		public Int32 AviSetFrameStep(Int32 Frames)
		{
			return dspAviSetFrameStep(m_hdsp,Frames);
		}
		public Int32 AviIsFinished()
		{
			return dspAviIsFinished(m_hdsp);
		}
		public Int32 AviStart([MarshalAs(UnmanagedType.LPWStr)]String FileName)
		{
			return dspAviStart(m_hdsp,FileName);
		}
		public Int32 AviPause()
		{
			return dspAviPause(m_hdsp);
		}
		public Int32 AviStop()
		{
			return dspAviStop(m_hdsp);
		}
		public Int32 DvrGetBufferFrameNum()
		{
			return dspDvrGetBufferFrameNum(m_hdsp);
		}
		public Int32 DvrSetBufferFrameNum(Int32 FrameNum)
		{
			return dspDvrSetBufferFrameNum(m_hdsp,FrameNum);
		}
		public Int32 DvrSetUseHalfX(Int32 Params)
		{
			return dspDvrSetUseHalfX(m_hdsp,Params);
		}
		public Int32 DvrCompressDlg()
		{
			return dspDvrCompressDlg(m_hdsp);
		}
		public Int32 DvrGetCompressor()
		{
			return dspDvrGetCompressor(m_hdsp);
		}
		public Int32 DvrSetCompressor(Int32 Compressor)
		{
			return dspDvrSetCompressor(m_hdsp,Compressor);
		}
		public Int32 DvrGetCompressorDes([MarshalAs(UnmanagedType.LPWStr)]StringBuilder pBuff,Int32 BuffNum)
		{
			return dspDvrGetCompressorDes(m_hdsp,pBuff,BuffNum);
		}
		public Int32 DvrGetCurrentPosition()
		{
			return dspDvrGetCurrentPosition(m_hdsp);
		}
		public Int32 DvrGetFrameStep()
		{
			return dspDvrGetFrameStep(m_hdsp);
		}
		public Int32 DvrSetFrameStep(Int32 Step)
		{
			return dspDvrSetFrameStep(m_hdsp,Step);
		}
		public Int32 DvrStart([MarshalAs(UnmanagedType.LPWStr)]String FileName)
		{
			return dspDvrStart(m_hdsp,FileName);
		}
		public Int32 DvrStop([MarshalAs(UnmanagedType.LPWStr)]String FileName,Int32 Params)
		{
			return dspDvrStop(m_hdsp,FileName,Params);
		}
		public Int32 DvrSetTitle(Int32 x,Int32 y,[MarshalAs(UnmanagedType.LPWStr)]String Msg)
		{
			return dspDvrSetTitle(m_hdsp,x,y,Msg);
		}
		public Int32 DvrImageCopy(IntPtr pDesBuf,Int32 BufSize,Int32 Num,Int32 bCircumgyrate90)
		{
			return dspDvrImageCopy(m_hdsp,pDesBuf,BufSize,Num,bCircumgyrate90);
		}
		public Int32 DvrImageBuffer(UInt32 SrcLoopBufIndex,UInt32 DesId)
		{
			return dspDvrImageBuffer(m_hdsp,SrcLoopBufIndex,DesId);
		}
		public Int32 VideoGetCaptureSize(ref Int32 pWidth,ref Int32 pHeight)
		{
			return dspVideoGetCaptureSize(m_hdsp,ref pWidth,ref pHeight);
		}
		public Int32 VideoSetCaptureSize(Int32 Width,Int32 Height)
		{
			return dspVideoSetCaptureSize(m_hdsp,Width,Height);
		}
		public Int32 VideoGetConnected()
		{
			return dspVideoGetConnected(m_hdsp);
		}
		public Int32 VideoSetConnected(Int32 Params)
		{
			return dspVideoSetConnected(m_hdsp,Params);
		}
		public Int32 VideoGetDeviceIndex()
		{
			return dspVideoGetDeviceIndex(m_hdsp);
		}
		public Int32 VideoSetDeviceIndex(Int32 Index)
		{
			return dspVideoSetDeviceIndex(m_hdsp,Index);
		}
		public Int32 VideoGetDeviceName([MarshalAs(UnmanagedType.LPWStr)]StringBuilder pBuff,Int32 BuffNum)
		{
			return dspVideoGetDeviceName(m_hdsp,pBuff,BuffNum);
		}
		public Int32 VideoDisplayDlg()
		{
			return dspVideoDisplayDlg(m_hdsp);
		}
		public Int32 VideoGetDisplayFormat()
		{
			return dspVideoGetDisplayFormat(m_hdsp);
		}
		public Int32 VideoSetDisplayFormat(Int32 Params)
		{
			return dspVideoSetDisplayFormat(m_hdsp,Params);
		}
		public Int32 VideoFormatDlg()
		{
			return dspVideoFormatDlg(m_hdsp);
		}
		public Int32 VideoGetSource()
		{
			return dspVideoGetSource(m_hdsp);
		}
		public Int32 VideoSetSource(Int32 Source)
		{
			return dspVideoSetSource(m_hdsp,Source);
		}
		public Int32 VideoSourceDlg()
		{
			return dspVideoSourceDlg(m_hdsp);
		}
		public Int32 VideoGetOtherParams(Int32 Type,ref Int32 Ret)
		{
			return dspVideoGetOtherParams(m_hdsp,Type,ref Ret);
		}
		public Int32 VideoSetOtherParams(Int32 Type,Int32 Params)
		{
			return dspVideoSetOtherParams(m_hdsp,Type,Params);
		}
		public Int32 VideoSetOtherParamsStr(Int32 Type,[MarshalAs(UnmanagedType.LPWStr)]String Params)
		{
			return dspVideoSetOtherParamsStr(m_hdsp,Type,Params);
		}
		public Int32 VideoGetDeviceHandle(String DllName,IntPtr DeviceHandle)
		{
			return dspVideoGetDeviceHandle(m_hdsp,DllName,DeviceHandle);
		}
		public IntPtr VideoGetDllFunction(String DllName,String FunctionName)
		{
			return dspVideoGetDllFunction(m_hdsp,DllName,FunctionName);
		}
		public Int32 VideoReadIO(Int32 Type,IntPtr pBuf,Int32 BufSize)
		{
			return dspVideoReadIO(m_hdsp,Type,pBuf,BufSize);
		}
		public Int32 VideoWriteIO(Int32 Type,ref Int32 pData,Int32 Size)
		{
			return dspVideoWriteIO(m_hdsp,Type,ref pData,Size);
		}
		public Int32 MsgInfoGetEnabled()
		{
			return dspMsgInfoGetEnabled(m_hdsp);
		}
		public Int32 MsgInfoSetEnabled(Int32 Params)
		{
			return dspMsgInfoSetEnabled(m_hdsp,Params);
		}
		public Int32 MsgInfoDisplay([MarshalAs(UnmanagedType.LPWStr)]String Msg)
		{
			return dspMsgInfoDisplay(m_hdsp,Msg);
		}
		public Int32 MsgLogoImageGetFile([MarshalAs(UnmanagedType.LPWStr)]StringBuilder pBuff,Int32 BuffNum)
		{
			return dspMsgLogoImageGetFile(m_hdsp,pBuff,BuffNum);
		}
		public Int32 MsgLogoImageSetFile([MarshalAs(UnmanagedType.LPWStr)]String FileName)
		{
			return dspMsgLogoImageSetFile(m_hdsp,FileName);
		}
		public Int32 MsgLogoImageRefresh()
		{
			return dspMsgLogoImageRefresh(m_hdsp);
		}
		public Int32 MsgEnabledFPS(Int32 bEnabled)
		{
			return dspMsgEnabledFPS(m_hdsp,bEnabled);
		}
		public Int32 LicenseDataRead(Int32 FileID,ref Int32 Password,Int32 PasswordLen,IntPtr pBuf,Int32 BufSize)
		{
			return dspLicenseDataRead(m_hdsp,FileID,ref Password,PasswordLen,pBuf,BufSize);
		}
		public Int32 LicenseDataWrite(Int32 FileID,ref Int32 Password,Int32 PasswordLen,ref Int32 pSrc,Int32 Bytes)
		{
			return dspLicenseDataWrite(m_hdsp,FileID,ref Password,PasswordLen,ref pSrc,Bytes);
		}
		public Int32 LicenseGetUserSerialID(ref Int32 Password,Int32 PasswordLen)
		{
			return dspLicenseGetUserSerialID(m_hdsp,ref Password,PasswordLen);
		}
		public Int32 LicensePasswordChange(Int32 FileID,ref Int32 OldPassword,Int32 OldPasswordLen,ref Int32 NewPassword,Int32 NewPasswordLen)
		{
			return dspLicensePasswordChange(m_hdsp,FileID,ref OldPassword,OldPasswordLen,ref NewPassword,NewPasswordLen);
		}
		public Int32 StatClear()
		{
			return dspStatClear(m_hdsp);
		}
		public Int32 StatGetColorUsed()
		{
			return dspStatGetColorUsed(m_hdsp);
		}
		public Int32 StatSetColorUsed(Int32 Params)
		{
			return dspStatSetColorUsed(m_hdsp,Params);
		}
		public Int32 StatGetEnabled()
		{
			return dspStatGetEnabled(m_hdsp);
		}
		public Int32 StatSetEnabled(Int32 Params)
		{
			return dspStatSetEnabled(m_hdsp,Params);
		}
		public Int32 StatInsert(Int32 Color,[MarshalAs(UnmanagedType.LPWStr)]String Number)
		{
			return dspStatInsert(m_hdsp,Color,Number);
		}
		public Int32 StatGetMaxTime()
		{
			return dspStatGetMaxTime(m_hdsp);
		}
		public Int32 StatSetMaxTime(Int32 Tick)
		{
			return dspStatSetMaxTime(m_hdsp,Tick);
		}
		public Int32 StatPasteBestRecord(Int32 Params)
		{
			return dspStatPasteBestRecord(m_hdsp,Params);
		}
		public Int32 StatSetMaxTargetNum(Int32 Num)
		{
			return dspStatSetMaxTargetNum(m_hdsp,Num);
		}
		public Int32 StatSetCurrentTarget(Int32 Type,Int32 Id)
		{
			return dspStatSetCurrentTarget(m_hdsp,Type,Id);
		}
		public Int32 MotionSetRunMode(Int32 RunMode)
		{
			return dspMotionSetRunMode(m_hdsp,RunMode);
		}
		public Int32 MotionSetDisplayResultEnabled(Int32 Params)
		{
			return dspMotionSetDisplayResultEnabled(m_hdsp,Params);
		}
		public Int32 MotionSetDisplayLaneEnabled(Int32 Params)
		{
			return dspMotionSetDisplayLaneEnabled(m_hdsp,Params);
		}
		public Int32 MotionGetLaneNum()
		{
			return dspMotionGetLaneNum(m_hdsp);
		}
		public Int32 MotionSetLaneNum(Int32 Num)
		{
			return dspMotionSetLaneNum(m_hdsp,Num);
		}
		public Int32 MotionSetLaneRangeY(Int32 Top,Int32 Bottom)
		{
			return dspMotionSetLaneRangeY(m_hdsp,Top,Bottom);
		}
		public Int32 MotionGetLaneRangeY(ref Int32 pTop,ref Int32 pBottom)
		{
			return dspMotionGetLaneRangeY(m_hdsp,ref pTop,ref pBottom);
		}
		public Int32 MotionSetLaneRangeX(Int32 LaneIndex,Int32 TopLeft,Int32 TopRight,Int32 BottomLeft,Int32 BottomRight)
		{
			return dspMotionSetLaneRangeX(m_hdsp,LaneIndex,TopLeft,TopRight,BottomLeft,BottomRight);
		}
		public Int32 MotionGetLaneRangeX(Int32 LaneIndex,ref Int32 pTopLeft,ref Int32 pTopRight,ref Int32 pBottomLeft,ref Int32 pBottomRight)
		{
			return dspMotionGetLaneRangeX(m_hdsp,LaneIndex,ref pTopLeft,ref pTopRight,ref pBottomLeft,ref pBottomRight);
		}
		public Int32 MotionGetCurrentLocatedRect(Int32 MotionTarget,ref Int32 pLeft,ref Int32 pTop,ref Int32 pRight,ref Int32 pBottom)
		{
			return dspMotionGetCurrentLocatedRect(m_hdsp,MotionTarget,ref pLeft,ref pTop,ref pRight,ref pBottom);
		}
		public Int32 MotionGetIdentity(Int32 MotionTarget)
		{
			return dspMotionGetIdentity(m_hdsp,MotionTarget);
		}
		public Int32 MotionGetIdentityByPlateTarget(Int32 Target)
		{
			return dspMotionGetIdentityByPlateTarget(m_hdsp,Target);
		}
		public Int32 MotionGetCurrentLaneIndex(Int32 MotionTarget)
		{
			return dspMotionGetCurrentLaneIndex(m_hdsp,MotionTarget);
		}
		public Int32 MotionGetResultType(Int32 MotionTarget)
		{
			return dspMotionGetResultType(m_hdsp,MotionTarget);
		}
		public Int32 MotionGetSpeedX(Int32 MotionTarget)
		{
			return dspMotionGetSpeedX(m_hdsp,MotionTarget);
		}
		public Int32 MotionGetSpeedY(Int32 MotionTarget)
		{
			return dspMotionGetSpeedY(m_hdsp,MotionTarget);
		}
		public Int32 MotionCfgLoad()
		{
			return dspMotionCfgLoad(m_hdsp);
		}
		public Int32 MotionCfgSave()
		{
			return dspMotionCfgSave(m_hdsp);
		}
		public Int32 RedLampDetectSetEnabled(Int32 Params)
		{
			return dspRedLampDetectSetEnabled(m_hdsp,Params);
		}
		public Int32 RedLampDetectGetNum()
		{
			return dspRedLampDetectGetNum(m_hdsp);
		}
		public Int32 RedLampDetectSetNum(Int32 Num)
		{
			return dspRedLampDetectSetNum(m_hdsp,Num);
		}
		public Int32 RedLampDetectSetDisplayResultEnabled(Int32 Params)
		{
			return dspRedLampDetectSetDisplayResultEnabled(m_hdsp,Params);
		}
		public Int32 RedLampDetectSetDisplayRangeEnabled(Int32 Params)
		{
			return dspRedLampDetectSetDisplayRangeEnabled(m_hdsp,Params);
		}
		public Int32 RedLampDetectSetMinDots(Int32 DotNum)
		{
			return dspRedLampDetectSetMinDots(m_hdsp,DotNum);
		}
		public Int32 RedLampDetectGetMinDots()
		{
			return dspRedLampDetectGetMinDots(m_hdsp);
		}
		public Int32 RedLampDetectSetRecogRange(Int32 LampIndex,Int32 Left,Int32 Top,Int32 Right,Int32 Bottom)
		{
			return dspRedLampDetectSetRecogRange(m_hdsp,LampIndex,Left,Top,Right,Bottom);
		}
		public Int32 RedLampDetectGetRecogRange(Int32 LampIndex,ref Int32 pLeft,ref Int32 pTop,ref Int32 pRight,ref Int32 pBottom)
		{
			return dspRedLampDetectGetRecogRange(m_hdsp,LampIndex,ref pLeft,ref pTop,ref pRight,ref pBottom);
		}
		public Int32 RedLampDetectGetLocate(Int32 LampIndex,ref Int32 pLeft,ref Int32 pTop,ref Int32 pRight,ref Int32 pBottom)
		{
			return dspRedLampDetectGetLocate(m_hdsp,LampIndex,ref pLeft,ref pTop,ref pRight,ref pBottom);
		}
		public Int32 RedLampDetectCfgLoad()
		{
			return dspRedLampDetectCfgLoad(m_hdsp);
		}
		public Int32 RedLampDetectCfgSave()
		{
			return dspRedLampDetectCfgSave(m_hdsp);
		}
		public Int32 ZZZZ(Int32 Type,IntPtr Params)
		{
			return dspZZZZ(m_hdsp,Type,Params);
		}
	}
}
